﻿using System;
using System.Collections.Generic;
using System.Text;

namespace Maltose.DynamicToken
{
    /// <summary>
    /// 动态令牌加密 token
    /// </summary>
    public class DynamicTokenKey
    {
        /// <summary>
        /// 缓存查询的真实key
        /// </summary>
        public string K { get; set; }

        /// <summary>
        /// 设置每次加密会得到不同的token
        /// </summary>
        public string T { get; set; }
    }


    /// <summary>
    /// 状态值
    /// </summary>
    public enum TokenContentStateType
    {
        /// <summary>
        /// 完全正确 可以使用
        /// </summary>
        OK,

        /// <summary>
        /// 完全错误不可以使用
        /// </summary>
        NO,

        /// <summary>
        /// 已过期 或者 无效
        /// </summary>
        ExpirePassOrInvalid,

        /// <summary>
        /// 解密真实key 错误
        /// </summary>
        DecryKeyError
    }

    /// <summary>
    /// 用于返回token值
    /// </summary>
    public class TokenContent
    {
        /// <summary>
        /// 对应的状态
        /// </summary>
        public TokenContentStateType State { get; set; } = TokenContentStateType.OK;

        /// <summary>
        /// token值 如果选中刷新token 该值会是一个新的token 旧token会在10分钟后失效
        /// </summary>
        public string Token { get; set; } = string.Empty;

        /// <summary>
        /// 错误或者正确消息
        /// </summary>
        public string Msg { get; set; } = "OK";
    }
}
